home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- '''
- Optional fixer to transform set() calls to set literals.
- '''
- from lib2to3 import fixer_base, pytree
- from lib2to3.fixer_util import token, syms
-
- class FixSetLiteral(fixer_base.BaseFix):
- explicit = True
- PATTERN = "power< 'set' trailer< '('\n (atom=atom< '[' (items=listmaker< any ((',' any)* [',']) >\n |\n single=any) ']' >\n |\n atom< '(' items=testlist_gexp< any ((',' any)* [',']) > ')' >\n )\n ')' > >\n "
-
- def transform(self, node, results):
- single = results.get('single')
- if single:
- fake = pytree.Node(syms.listmaker, [
- single.clone()])
- single.replace(fake)
- items = fake
- else:
- items = results['items']
- literal = [
- pytree.Leaf(token.LBRACE, '{')]
- literal.extend((lambda .0: for n in .0:
- n.clone())(items.children))
- literal.append(pytree.Leaf(token.RBRACE, '}'))
- literal[-1].set_prefix(items.get_next_sibling().get_prefix())
- maker = pytree.Node(syms.dictsetmaker, literal)
- maker.set_prefix(node.get_prefix())
- if len(maker.children) == 4:
- n = maker.children[2]
- n.remove()
- maker.children[-1].set_prefix(n.get_prefix())
-
- return maker
-
-
-